package com.cloudbroker.bcs.platform.dav.bizapi.service.business.plugs;

import com.cloudbroker.bcs.common.annotation.NoLogin;
import com.cloudbroker.bcs.common.annotation.RequiredPermissions;
import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.platform.dav.bizapi.constants.PermissionsValue;
import com.cloudbroker.bcs.platform.dav.bizapi.service.base.vo.HSBCPSVO;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.plugs.result.ExtendAppGroupDavListResult;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.plugs.result.ExtendAppGroupFansListResult;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.plugs.vo.ExtendAppGroupDelForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.plugs.vo.ExtendAppGroupForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.plugs.vo.ExtendAppGroupUpdateForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.plugs.vo.ExtendGroupListForm;

public interface ExtendAppGroupBizService {

	/**
	 * dav通过分组ID获取列表
	 * @param param
	 * @return
	 */
	@RequiredPermissions(value = {PermissionsValue.EXTEND})
	public ExtendAppGroupDavListResult funcExtendAppByGroup(ExtendGroupListForm param);
	
	/**
	 * 修改分组中应用信息
	 * @param param
	 * @return
	 */
	@RequiredPermissions(value = {PermissionsValue.EXTEND})
	public HSBCPSBackVO funcExtendAppGroupUpdate(ExtendAppGroupUpdateForm param);
	
	   /**
     * 修改分组中应用信息
     * @param param
     * @return
     */
    @RequiredPermissions(value = {PermissionsValue.EXTEND})
    public HSBCPSBackVO funcExtendAppGroupDel(ExtendAppGroupDelForm param);
	
	/**
	 * 粉丝通过分组ID获取列表
	 * @param param
	 * @return
	 */
	@NoLogin
	public ExtendAppGroupFansListResult funcExtendAppByGroupFans(ExtendAppGroupForm param);
	
	   /**
     * 初始化dav应用和分组数据
     * @param form
     * @return
     */
    @NoLogin
    public HSBCPSBackVO funcInitBrokerAppGroup(HSBCPSVO form);

	/**
	 * 给每个dav添加两个新组件
	 * @param form
	 * @return
	 */
	@NoLogin
	public HSBCPSBackVO funcAddPlugsToBrokerAppGroup(HSBCPSVO form);
}
